From 0080224fdb0984997e04dcc465ecda58933738ac Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bastian=20Ils=C3=B8?= Date: Sat, 14 Feb 2015 21:24:20 +0100 Subject: [PATCH] Updated grid-packing to GtkApplication. --- docs/reference/gtk/getting_started.xml | 5 ++-- examples/grid-packing.c | 38 ++++++++++++++------------ 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/docs/reference/gtk/getting_started.xml b/docs/reference/gtk/getting_started.xml index 949b96809a..03bd2d63df 100644 --- a/docs/reference/gtk/getting_started.xml +++ b/docs/reference/gtk/getting_started.xml @@ -169,9 +169,8 @@ Packing When creating an application, you'll want to put more than one widget - inside a window. Our first helloworld example only used one widget so we - could simply use a gtk_container_add() call to "pack" the widget into the - window. But when you want to put more than one widget into a window, it + inside a window. + When you want to put more than one widget into a window, it it becomes important to control how each widget is positioned and sized. This is where packing comes in. diff --git a/examples/grid-packing.c b/examples/grid-packing.c index 9943babac7..2d9db4fb90 100644 --- a/examples/grid-packing.c +++ b/examples/grid-packing.c @@ -7,23 +7,17 @@ print_hello (GtkWidget *widget, g_print ("Hello World\n"); } -int -main (int argc, - char *argv[]) +static void +activate (GtkApplication *app, + gpointer user_data) { GtkWidget *window; GtkWidget *grid; GtkWidget *button; - /* This is called in all GTK applications. Arguments are parsed - * from the command line and are returned to the application. - */ - gtk_init (&argc, &argv); - /* create a new window, and set its title */ - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (window), "Grid"); - g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + window = gtk_application_window_new (app); + gtk_window_set_title (GTK_WINDOW (window), "Window"); gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* Here we construct the container that is going pack our buttons */ @@ -49,7 +43,7 @@ main (int argc, gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 1); button = gtk_button_new_with_label ("Quit"); - g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); /* Place the Quit button in the grid cell (0, 1), and make it * span 2 columns. @@ -63,11 +57,19 @@ main (int argc, */ gtk_widget_show_all (window); - /* All GTK applications must have a gtk_main(). Control ends here - * and waits for an event to occur (like a key press or a mouse event), - * until gtk_main_quit() is called. - */ - gtk_main (); +} + +int +main (int argc, + char **argv) +{ + GtkApplication *app; + int status; + + app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); + g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); + status = g_application_run (G_APPLICATION (app), argc, argv); + g_object_unref (app); - return 0; + return status; } -- 2.30.2